Skip to main content

Section Connection

Various connection settings.

AllowedClientVersion

The version of the client application supported by the server. The value of the property contains an identifier string, which must be sent to the server by the client application. Client applications having incorrect version are prohibited from connecting to the server. If the value of the property is set to an empty string, then the client applications of any version are supported by the server.

<property-str name="AllowedClientVersion" value=""/>
AllowedProtocolVersions

This setting is obsolete.

<property-uint name=" AllowedProtocolVersions"/>
SessionsTimeoutsCheckInterval

This option is used to define the number of seconds to wait before scheduling the next session state check.

<property-uint name="SessionsTimeoutsCheckInterval" value="3"/>
ClientPingInterval

The interval between pinging a client session to detect silently dead sessions (in seconds). Use 0 if you want to turn off this functionality.

<property-uint name="ClientPingInterval" value="300"/>
LobbyStatsUpdateInterval

The interval between sending the statistics from the lobbyserver to the client application (in seconds).

<property-uint name="LobbyStatsUpdateInterval" value="60"/>
UseDisplacingLogin

This parameter determines whether the player should be kicked out of the table upon new login. Default: true – the player is not kicked out of the table when he reconnects. Possible values: true, false.

<property-bool name="UseDisplacingLogin" value="true"/>
AllowMultiLogin

This setting enables multiple logins to the client application with one authorization token. This can be used in the integrated solutions, for example, if the customer opens tables by the link, and each table is opened in a separate window. In this case, multiple logins will be allowed for these windows if AllowMultiLogin = true. However, there are also certain limitations to multiple logins:

  • The sessions can only be opened through Auth with empty login and password;
  • If a new login is done with login and password, the previously opened sessions are stopped.
<property-bool name="AllowMultiLogin" value="true"/>
AllowMultiLoginOnlyForSameIP

This setting is only relevant if AllowMultiLogin = true. If AllowMultiLoginOnlyForSameIP is enabled, a user will only be able to have multiple logins from the same IP-address. True by default.

<property-bool name="AllowMultiLoginOnlyForSameIP" value="false"/>
AllowMultiLoginOnlyForSameDevice

This setting is only relevant if AllowMultiLogin = true. If AllowMultiLoginOnlyForSameDevice is enabled, a user will only be able to have multiple logins from the same device. False by default.

<property-bool name="AllowMultiLoginOnlyForSameDevice" value="false"/>
ClientTitle

The title of the desktop client application.

<property-str name="ClientTitle" value="Enterra Demo Poker"/>
ClientAutoLogoutTimeout

The player gets logged out after ClientAutoLogoutTimeout seconds of inactivity. In order to resume playing, the player has to log in again. Use 0 to turn the feature off.

<property-uint name="ClientAutoLogoutTimeout" value="900"/>
RequireAccountActivation

If this feature is enabled, players are not allowed to login until they pass the e-mail verification (using the activation page on the website). Possible values: true (the feature is enabled), false (the feature is disabled).

<property-bool name="RequireAccountActivation" value="false"/>
NumDigitsInActivationCode

Defines the number of digits in the activation code sent for the e-mail verification. Default value: 0. In this case, a long hex-string will be sent for activation. Possible values: any numeric value. For example, if you set it to 6, the users will receive a 6-digit activation code.

<property-uint name="NumDigitsInActivationCode " value="0"/>
StoreHashedPasswords

Store md5 hash of players' passwords instead of plain password text. Possible values: true (the feature is enabled), false (the feature is disabled).

<property-bool name="StoreHashedPasswords" value="true"/>
EnableGuests

This parameter enables guest registration of players with the username 'guest'. It is only available in QT mobile app. Possible values: true (the feature is enabled), false (the feature is disabled).

<property-bool name="EnableGuests" value="true"/>
AuthorizationTicketLifetime

This parameter is used in the client authorization on website. If the client application has not sent the auth code received after the authorization back to the server within AuthorizationTicketLifetime seconds, that auth code becomes invalid.

<property-uint name="AuthorizationTicketLifetime" value="120"/>
LongAuthorizationTicketLifetime

This parameter is used in the client app authorization. It defines the lifetime of the token, saved when the player enables 'Remember me' option. If it is enabled, the player must be logged in automatically within LongAuthorizationTicketLifetime seconds, after that the login token becomes invalid.

<property-uint name="LongAuthorizationTicketLifetime" value="2592000"/>
UseNickAsLoginAtAuthentication

This parameter allows players to login using nickname. Possible values: true (the feature is enabled), false (the feature is disabled).

<property-bool name="UseNickAsLoginAtAuthentication" value="true"/>
UseEmailAsLoginAtAuthentication

This parameter allows players to login using email address. Possible values: true (the feature is enabled), false (the feature is disabled).

<property-bool name="UseEmailAsLoginAtAuthentication" value="true"/>
UsePhoneAsLoginAtAuthentication

This parameter allows players to login using phone number. Possible values: true (the feature is enabled), false (the feature is disabled).

<property-bool name="UsePhoneAsLoginAtAuthentication" value="true"/>
RequiredForLoginTFAType

Defines the type of two-factor authentication (2FA) required for login for all players. If the RequiredForLoginTFAType parameter is set to one of the specified values (tfa.sms, tfa.email, tfa.google-auth, tfa.otp, tfa.client-check), a valid 2FA code must be entered to complete the login process. The settings will only work if the data for them has been previously specified or configured.

  • tfa.sms — two-factor authentication via SMS. A code is sent to the user's mobile phone via text message, which must be entered to complete the login process;
  • tfa.email — two-factor authentication via email. A code is sent to the user's registered email address, which must be entered to complete the login process;.
  • tfa.google-auth — two-factor authentication using the Google Authenticator app. The app generates time-based one-time passcodes that must be entered to complete the login process;
  • tfa.otp — two-factor authentication using a generic one-time password (OTP code) applies to login via phone number or email, to which the one time password should be sent and entered by the user for login;
  • tfa.client-check — two-factor authentication provides additional client-side verification, such as checking the player's geolocation through the third-party service XPoint or other services. For information about integrating services for this verification, please contact the Evenbet team;
  • tfa.unknown — thе setting indicates that no two-factor authentication is required for login. Authorization is performed without the need to enter a 2FA code.
<property-enum name="RequiredForLoginTFAType" value="tfa.unknown"/>
ObservedPeriodToCheckPasswordPolicyViolation

This parameter sets up a time period to check if there were too many attempts to login using invalid password.

<property-uint name="ObservedPeriodToCheckPasswordPolicyViolation" value="300"/>
LockTimeAtPasswordPolicyViolation

Defines the time period, during which the user/IP will be blocked in case the MaxNumberOfInvalidPasswordAttempts was exceeded within ObservedPeriodToCheckPasswordPolicyViolation. After the period indicated in the setting, the user account/ the user's IP will be automatically unlocked. While the account is blocked, it will appear in the Blocked Users list, the IP will appear in the Prohibited IP List. If necessary, accounts/IPs can be unblocked through these pages before the end of the blocking period.

<property-uint name="LockTimeAtPasswordPolicyViolation" value="1800"/>
MaxNumberOfInvalidPasswordAttempts

This parameter sets up the number of login attempts with invalid password before the player/IP gets blocked.

<property-uint name="MaxNumberOfInvalidPasswordAttempts" value="5"/>
EnableCAVerificationForSSLChannel

Defines whether the certificate is checked. This is a security system setting, please, do not change its value.

<property-bool name="EnableCAVerificationForSSLChannel" value="true"/>
AllowIdenticalNickNameInSkins

Defines if there can be users with identical nicknames in case they belong to different skins. If true, then there can be a user with nickname ‘test’ in skin1 and a user with nickname ‘test’ in skin2. However, there still cannot be two users with nickname ‘test’ in the same skin. If false, the nickname uniqueness is checked regardless of the skin.

<property-bool name="AllowIdenticalNickNameInSkins" value="true"/>
AllowIdenticalEmailInSkins

Defines if there can be users with identical e-mail addresses in case they belong to different skins. If true, then there can be a user with e-mail ‘[email protected]’ in skin1 and a user with e-mail ‘[email protected]’ in skin2. However, there still cannot be two users with e-mail ‘[email protected]’ in the same skin. If false, the e-mail uniqueness is checked regardless of the skin.

<property-bool name="AllowIdenticalEmailInSkins" value="true"/>
AllowIdenticalPhoneNumInSkins

Defines if there can be users with identical phone numbers in case they belong to different skins. If true, then there can be a user with phone number ‘123456’ in skin1 and a user with phone number ‘123456’ in skin2. However, there still cannot be two users with phone number ‘123456’ in the same skin. If false, the phone number uniqueness is checked regardless of the skin.

<property-bool name="AllowIdenticalPhoneNumInSkins" value="true"/>
AllowIdenticalDisplayNameInSkins

Defines if there can be users with identical display names in case they belong to different skins. If true, then there can be a user with display name ‘test’ in skin1 and a user with display name ‘test’ in skin2. However, there still cannot be two users with display name ‘test’ in the same skin. If false, the display name uniqueness is checked regardless of the skin.

<property-bool name="AllowIdenticalDisplayNameInSkins" value="true"/>
RequireUniquePlayerDisplayName

If true, the system will check user’s display name uniqueness. If false, the users will be able to have identical display names.

<property-bool name="RequireUniquePlayerDisplayName" value="true"/>
RequireSkinCheckOnPlayerLogin

Enables skin check at the login. If the user’s skin does not correspond with the client app’s skin, login will be unsuccessful, even if the user's credentials were correct.

<property-bool name="RequireSkinCheckOnPlayerLogin" value="false"/>
PhoneNumberCorrection

If enabled, the phone numbers, inserted by the players during the registration, will be saved in the database without non-numerical symbols, such as ‘+’, ‘-‘, etc. Default value: true.

<property-bool name="PhoneNumberCorrection" value="true"/>
BlockViolatorMethodType

Defines, what is blocked in case the user exceeds MaxNumberOfInvalidPasswordAttempts within ObservedPeriodToCheckPasswordPolicyViolation. Possible values:

  • bvmt.none – nothing is blocked if the allowed number of invalid password attempts was exceeded;
  • bvmt.account – the user’s account is blocked if the allowed number of invalid password attempts was exceeded. After the period indicated in the LockTimeAtPasswordPolicyViolation setting, the user account is unlocked;
  • bvmt.ip – the IP of the user who made login attempts is blocked if the allowed number of invalid password attempts was exceeded. After the period indicated in the LockTimeAtPasswordPolicyViolation setting, the user's IP is unlocked.
<property-enum name="BlockViolatorMethodType" value="bvmt.account"/>
ClientsOutputMessagesSizeHardLimitMb

The summarized maximum size (in Mb) of the client’s outgoing messages. If it is exceeded, a disconnection takes place.

<property-uint name="ClientsOutputMessagesSizeHardLimitMb" value="10"/>
ClientsOutputMessagesSizeSoftLimitMb

The summarized maximum size (in Mb) of the client’s outgoing messages. If it is exceeded, a countdown that lasts for ClientsOutputMessagesSizeSoftLimitTimeoutSeconds starts. If the size of the client’s outgoing messages does not decrease during this time, the client is disconnected.

<property-uint name="ClientsOutputMessagesSizeSoftLimitMb" value="4"/>
ClientsOutputMessagesSizeSoftLimitTimeoutSeconds

The timeout to disconnect the client if the summarized maximum size (in Mb) of the client’s outgoing messages exceeds ClientsOutputMessagesSizeSoftLimitMb.

<property-uint name="ClientsOutputMessagesSizeSoftLimitTimeoutSeconds" value="10"/>
MaxDBBulkInsertQuerySizeMb

This setting limits the maximum size of insert request sent to MySQL when bulk insert is used (this limitation does not apply to the first entry). The entries that were cut because of this limitation are added to the next request.

<property-uint name="MaxDBBulkInsertQuerySizeMb" value="5"/>
ClientTrustedHosts

Defines the hosts, in URLs for which the parameters can be added (auth, playerId, etc.)

<property-str-list name="ClientTrustedHosts">
<item value="111.111.1.11"/>
</property-str-list>
CompleteProfileRequirements

This setting allows to specify profile data that must be filled out for the account to be marked as “Completed”.

[]

Additionally, this setting is closely connected with account verification. Backoffice administrators will not be able to approve KYC documents for the user in User Details - Verification section unless their profile is complete.

[]
<property-str-list name="CompleteProfileRequirements">
<item value="password"/>
<item value="nick"/>

Possible values:
"nick"
"password"
"city"
"skin"
"name"
"e-mail"
"phone-number"
"gender"
"address"
"country"
"zip-code"
"family-name"
"middle-name"
"Display-name"
"state"
"date-of-birth"
"email-verified"

MQ Message Delivery

It is possible to create Named Sessions, for which the system will ensure MQ message delivery in case of disconnection. In order to create a named session, you need to call poker_component_start_thread_with_session_name instead of poker_component_start_thread, where you also need to specify the session name.

The list of session names to guarantee notification sending is added to Configuration > System > Main, section Connection:

<property-str-list name="GuaranteedCallbackSessionsNames">
<item value="SessionAAAA"/>
<item value="SessionBBBB"/>
</property-str-list>

For the sessions that are not included in this list, there will only be one attempt to send the notification in case of disconnection. For the sessions from this list, the messages will be stacked in queue if disconnection occurs.

The maximum length of the message queue can also be specified in Configuration > System > Main, section Connection (it works according to the FIFO). If there is an attempt to add a new notification on top of the maximum limit, the oldest notification is lost. The new notification is always added to the queue.

<property-uint name="SendNotificationDelayLineMaxSize" value="10"/>

Other parameters related to MQ message delivery:

The parameters that set up the period to resend the messages and the number of messages that can be sent in a period:

<property-uint name="SendNotificationResendTimeoutSec" value="5"/>
<property-uint name="SendNotificationMaxPerTimeoutCall" value="3"/>

The parameter that sets up the maximum number of attempts to send the notification. If this limit is reached, the notification is deleted from the queue:

<property-uint name="SendNotificationMaxAttemptCnt" value="3"/>

The parameter that sets up the period for refresh and show of the error during the sending (the value of this parameter is set in the number of periods to resend the messages, so if SendNotificationResendTimeoutSec = 5 and SendNotificationPrintAndRefreshErrorTimeoutCnt = 2, the period for refresh would be 10).

<property-uint name="SendNotificationPrintAndRefreshErrorTimeoutCnt" value="2"/>

The error messages about sending the notifications are necessary to understand why the buffering of the notifications takes place. The error messages have the following format:

SendNotifications warning : SessionAAAA session lost, SessionBBBB session lost, delayline size = 1

You can see the sessions, the connection to which was lost, and the size of the delayed queue.

Default parameters values:

  • m_sendNotificationDelayLineMaxSize = 1;
  • m_sendNotificationMaxAttemptCnt = 1;
  • m_sendNotificationMaxPerTimeoutCall = 1;
  • m_sendNotificationResendTimeoutSec = 5;
  • m_sendNotificationPrintAndRefreshErrorTimeoutCnt = 2

I.e., by default there is no resending, the data is not buffered.

Since this solution was developed to decrease the number of lost messages when connection to the receivers of notifications is lost for a short period of time, the parameters should be configured in regards to this period. For instance, if the period is 20 seconds, you can configure the parameters like this:

  • m_sendNotificationMaxAttemptCnt = 4;
  • m_sendNotificationResendTimeoutSec = 5;
  • m_sendNotificationMaxPerTimeoutCall = 20.

I.e., the system will give 4*5 seconds for the upper message to be sent (4 attempts will be made). When the system is back online and the upper message is sent without errors, 20 upper messages from the queue will be sent without delay. Another 20 messages will be sent in the next iteration of the timer, and so it will continue until the queue is empty.